<template>
  <div class="contarner-page" @click.stop="showLanguageHandel">
    <page-header ref="languageRef"></page-header>
    <main>
      <div class="downloader flex_ccenter" v-if="!success">
        <div class="container">
          <div class="banner-heading flex_ccenter">
            <div class="heading-item">
              <h1 class="title fw700 f-42 c-fff">Λήψη ιστορίας Instagram</h1>
              <h2 class="sub c-fff f-18 fw400">
                Το καλύτερο πρόγραμμα λήψης ιστοριών Instagram δωρεάν
              </h2>
            </div>
          </div>
          <div class="form flex_center">
            <div class="input-box flex_between">
              <!-- <input
                    type="text"
                    class="input f-18"
                    v-model="input"
                    @input="handleInput"
                    @paste="handleInput"
                    placeholder="Paste URL Instagram"
                    list="fruits"
                    name="fruit"
                  />
                  <datalist id="fruits">
                    <option value="Apple"></option>
                    <option value="Banana"></option>
                    <option value="Cherry"></option>
                  </datalist> -->
              <input
                type="text"
                class="input f-18"
                v-model="input"
                :disabled="isHttpLoading"
                @input="handleInput"
                @paste="handleInput"
                @keydown="sendDownload($event)"
                placeholder="Paste URL Instagram"
              />
              <div
                class="Paste shou flex_center"
                @click="handleClickPasted"
                v-if="input == ''"
              >
                <div class="btnbg"></div>
                <div class="f-16 c-000 fw700">Paste</div>
              </div>
              <div
                class="clear shou flex_center"
                v-if="input != '' && !isHttpLoading"
                @click.stop="input = ''"
              >
                <div class="btnbg"></div>
                <div class="f-16 c-000 fw700">Clear</div>
              </div>
            </div>
            <div
              v-if="!isHttpLoading"
              @click.stop="downloadHandel"
              class="submit shou fw700 c-fff flex_center"
            >
              Download
            </div>
            <div v-else class="submit shou fw700 c-fff flex_center">
              Please wait
            </div>
          </div>
          <div class="app-submit flex_ccenter">
            <div
              class="submit flex_center"
              v-if="!isHttpLoading"
              @click.stop="downloadHandel"
            >
              <div class="fw700 c-fff f-21">Download</div>
            </div>
            <div class="submit flex_center" v-else>
              <div class="fw700 c-fff f-21">Please wait</div>
            </div>
          </div>
          <div class="loading" v-if="isHttpLoading">
            <div class="loading-dots flex_center">
              <div class="dot"></div>
              <div class="dot"></div>
              <div class="dot"></div>
              <div class="dot"></div>
            </div>
            <div class="tips f-18 flex_center">
              <div>Ανάκτηση δεδομένων, περιμένετε μερικά δευτερόλεπτα!</div>
            </div>
          </div>
          <div class="error flex_ccenter" v-if="httpError1">
            <div class="hono flex_">
              <div class="error-img"></div>
              <div class="error-img"></div>
              <div class="error-img"></div>
            </div>
            <div class="errMsg f-18">
              Ο ιστότοπος δεν μπορεί να επεξεργαστεί τον σύνδεσμό σας επειδή είναι ιδιωτικός
            </div>
          </div>
          <div class="error flex_ccenter" v-if="httpError2">
            <div class="hono flex_">
              <div class="error-img"></div>
              <div class="error-img"></div>
              <div class="error-img"></div>
            </div>
            <div class="errMsg f-18">
              Τα δεδομένα που εισαγάγατε δεν είναι σύνδεσμος, εισάγετε έναν έγκυρο σύνδεσμο για
               παράδειγμα:
              <div>https://www.instagram.com/reel/Cml9qu-ISqx</div>
            </div>
          </div>
        </div>
      </div>
      <!-- 广告位start -->
      <!-- 广告位end -->
      <div class="container" v-if="!success">
        <div class="body-content">
          <div class="app-box">
            <div class="app-box__info">
              <h3 class="app-box__title f-21 fw700 c-000">
                Λήψη με την εφαρμογή Insta Downloader
              </h3>
              <p class="f-16 c-ccc">
                Η εφαρμογή μας προσφέρει μια γρήγορη και απλή λύση για τη λήψη βίντεο Instagram, παρέχοντας βίντεο ποιότητας HD χωρίς υδατογραφήματα.
              </p>
            </div>
            <div class="app-link">
              <a 
                  target="_blank" href="https://play.google.com/store/apps/details?id=ins.freevideodownload.pro">
                <img src="/static/images/google-play.webp" alt="Download app " />
              </a>
              <a href="https://apps.apple.com/us/app/repost-for-video-save-story/id6462401460"  target="_blank">
                <img src="/static/images/IOS.webp" alt="Download app " />
              </a>
            </div>
          </div>
          <div class="quick-info">
            <h3 class="f-32 c-000">
              Λήψη ιστορίας Instagram με το Savinginsta
            </h3>
            <p class="f-16 c-ccc">
              Το Savinginsta.Com είναι το κορυφαίο πρόγραμμα λήψης ιστοριών Instagram, γνωστό
               για την ευκολία χρήσης και τη δυνατότητα λήψης Instagram υψηλής ποιότητας
               ιστορίες με τις μεγαλύτερες ταχύτητες. Κατεβάστε το Instagram Stories στο δικό σας
               τηλέφωνο, υπολογιστής ή tablet στην υψηλότερη ποιότητα χρησιμοποιώντας το Instagram μας
               πρόγραμμα λήψης βίντεο απευθείας από το πρόγραμμα περιήγησής σας. Χωρίς λογισμικό
               απαιτείται εγκατάσταση και υποστηρίζει Android και iOS.
            </p>
          </div>
          <div class="quick-info">
            <h3 class="f-32 c-000">
              Γιατί να χρησιμοποιήσετε το Savinginsta για λήψεις Story Instagram;
            </h3>
            <p class="f-16 c-ccc">
              Τα Instagram Stories, γεμάτα με μαγευτικές φωτογραφίες και βίντεο, είναι
               ένα σημαντικό μέρος της ψηφιακής μας έκφρασης αλλά είναι μόνο ορατά
               για 24 ώρες. Αν σας αρέσει να βλέπετε Instagram Stories και θέλετε
               κατεβάστε τα, το Savinginsta είναι εδώ για να σας βοηθήσει. Απλώς εισάγετε το
               URL του Instagram Story στο Savinginsta και κατεβάστε τα καλύτερα
               Ιστορίες Instagram δωρεάν.
            </p>
          </div>
          <div class="how">
            <div class="how-title">
              <h3 class="f-36 c-000 italic">
                Πώς να κατεβάσετε το Video Instagram Story;
              </h3>
            </div>
            <div class="steps">
              <div class="step">
                <div class="one">
                  <span class="fw700 c-blue f-16">Βήμα 01:</span>
                  <span class="f-16 c-000"> 
                    Εισαγάγετε το όνομα χρήστη Instagram του οποίου την ιστορία θέλετε
                     λήψη στο Savinginsta.App.</span
            >
                </div>
              </div>
              <div class="step">
                <span class="fw700 c-blue f-16">Βήμα 02:</span>
                <span class="f-16 c-000">
                  Επιλέξτε την ιστορία που θέλετε να κατεβάσετε.</span
                >
              </div>
              <div class="step">
                <span class="fw700 c-blue f-16">Βήμα 03:</span>
                <span class="f-16 c-000"
                  >Κάντε κλικ στο «Λήψη» για να αποθηκεύσετε την ιστορία του βίντεο Instagram στο δικό σας
                   συσκευή.</span
                >
              </div>
            </div>
          </div>
          <div class="features c-fff">
            <h3 class="h3 fw700 f-21">
              Πώς να κάνετε λήψη του Insta Story στο τηλέφωνό σας;
            </h3>
            <div class="attributes-list">
              <div class="features-title">
                Η λήψη είναι εξαιρετικά εύκολη. Εδώ είναι ένας αναλυτικός οδηγός:
              </div>
              <div class="item flex_">
                <div class="bgimg"></div>
                <div class="f-14 c-fff">
                  Ανοίξτε το Instagram σε ένα πρόγραμμα περιήγησης όπως το Chrome, το Firefox ή το
                   Εφαρμογή Instagram.
                </div>
              </div>
              <div class="item flex_">
                <div class="bgimg"></div>
                <div class="f-14 c-fff">Επιλέξτε μια ιστορία που σας αρέσει.</div>
              </div>
              <div class="item flex_">
                <div class="bgimg"></div>
                <div class="f-14 c-fff">
                  Κάντε κλικ στο βίντεο που θέλετε να κατεβάσετε.
                </div>
              </div>
              <div class="item flex_">
                <div class="bgimg"></div>
                <div class="f-14 c-fff">
                  Αντιγράψτε τη διεύθυνση URL της ιστορίας από τη γραμμή διευθύνσεων.
                </div>
              </div>
              <div class="item flex_">
                <div class="bgimg"></div>
                <div class="f-14 c-fff">
                  Επικολλήστε το όνομα χρήστη στο πλαίσιο διεύθυνσης στο Savinginsta.
                </div>
              </div>
              <div class="item flex_">
                <div class="bgimg"></div>
                <div class="f-14 c-fff">
                  Πατήστε «Λήψη» για να κάνετε λήψη της ιστορίας του Instagram online.
                </div>
              </div>
              <div class="item flex_">
                <div class="bgimg"></div>
                <div class="f-14 c-fff">
                  Η φωτογραφία ή το βίντεο της ιστορίας IG που κατεβάσατε βρίσκεται τώρα στον φάκελό σας.
                </div>
              </div>
            </div>
          </div>
          <div class="how">
            <div class="how-title">
              <h3 class="f-36 c-000 italic">
                Πώς να κατεβάσετε τις ιστορίες και τα highlights του Instagram στο Διαδίκτυο;
              </h3>
            </div>
            <div class="steps">
              <div class="step">
                <div class="one">
                  <span class="f-16 c-000"
                    >Λάβετε το σύνδεσμο από τα Instagram Stories ή αντιγράψτε το
                     όνομα χρήστη του λογαριασμού Instagram που θέλετε να κατεβάσετε
                     από.</span
                  >
                </div>
              </div>
              <div class="step">
                <span class="f-16 c-000"
                  >Μεταβείτε στο Savinginsta - Insta Story Downloader και επικολλήστε το
                   σύνδεσμος ιστορίας στη γραμμή εργαλείων.
                </span>
              </div>
              <div class="step">
                <span class="f-16 c-000"
                  >Επιλέξτε την ιστορία που εμφανίζεται στην οθόνη, επιλέξτε την ιστορία
                   θέλετε να κάνετε λήψη και πατήστε «Λήψη».</span
                >
              </div>
            </div>
          </div>
          <div class="quick-info">
            <h3 class="f-32 c-000">
              Τι κάνει το Savinginsta.Com την καλύτερη λήψη ιστοριών Instagram (IG).
               Εργαλείο?
            </h3>
            <ul class="f-16 c-ccc">
              <li>Φιλικό προς τον χρήστη και το πιο γρήγορο εργαλείο.</li>
              <li>Συνεχείς ενημερώσεις για την καλύτερη εξυπηρέτηση.</li>
              <li>
                Εντελώς ΔΩΡΕΑΝ! Υποστηρίζουμε την ανάπτυξή μας μέσω του minimal
                 διαφήμιση.
              </li>
            </ul>
          </div>
          <div class="faq-section">
            <h3 class="faq-title f-36 c-000 italic">FAQ</h3>
            <div class="accordion">
              <div
                id="faq"
                itemscope="itemscope"
                itemtype="https://schema.org/FAQPage"
              >
                <div
                  itemprop="mainEntity"
                  itemscope="itemscope"
                  itemtype="https://schema.org/Question"
                  class="accordion-item"
                  :key="k"
                  v-for="(item, k) in faqList"
                >
                  <h4 itemprop="name" class="accordion-title fw700 f-16">
                    {{ item.title }}
                  </h4>
                  <div
                    itemprop="acceptedAnswer"
                    itemscope=""
                    itemtype="https://schema.org/Answer"
                  >
                    <div
                      itemprop="text"
                      class="accordion-text f-16 c-ccc fw400"
                    >
                      {{ item.content }}
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
      <!-- 解析结果 start -->
      <div class="container" v-if="success">
        <success-content
          @refresh="refresh"
          :list="successList"
        ></success-content>
      </div>
      <!-- 解析结果 end -->
    </main>
    <footer>
      <div class="container">
        <div class="footer-content">
          <div class="footer-link">
            <div class="row flex_between">
              <div class="col-12">
                <div class="link-label fw700 c-000 f-21">Εργαλεία</div>
                <ul class="list-unstyled c-ccc f-16">
                  <li>
                    <nuxt-link to="/el/instagram-story-download" 
                      >Instagram Story Downloader</nuxt-link
                    >
                  </li>
                  <li>
                    <nuxt-link to="/el/instagram-reels-video-download" 
                      >Πρόγραμμα λήψης τροχών Instagram</nuxt-link
                    >
                  </li>
                  <li>
                    <a href="https://savingtik.com/" target="_blank"
                      >Tiktok Downloader</a
                    >
                  </li>
                </ul>
              </div>
              <div class="col-6">
                <div class="link-label fw700 c-000 f-21">Υποστήριξη</div>
                <ul class="list-unstyled c-ccc f-16">
                  <li>
                    <nuxt-link to="/contact"> Επικοινωνία </nuxt-link>
                  </li>
                  <li>
                    <nuxt-link to="/blog"> Blog </nuxt-link>
                  </li>
                </ul>
              </div>
              <div class="col-6">
                <div class="link-label fw700 c-000 f-21">Νομικός</div>
                <ul class="list-unstyled c-ccc f-16">
                  <li>
                    <nuxt-link to="/terms-of-service">
                      Όροι χρήσης
                    </nuxt-link>
                  </li>
                  <li>
                    <nuxt-link to="/privacy-policy"> Πολιτική Απορρήτου </nuxt-link>
                  </li>
                </ul>
              </div>
            </div>
          </div>
          <div class="copyright flex_ccenter">
            <b class="fw700 f-21 c-000"
              >Δεν είμαστε συνδεδεμένοι με το Instagram ή το Meta</b
            >
            <div class="c-ccc f-16">
                © {{new Date().getFullYear()}} Insta Downloader All rights reserved. 
            </div>
          </div>
        </div>
      </div>
    </footer>
  </div>
</template>
    
    <script>
import { mapState, mapGetters, mapMutations } from "vuex";
import pageHeader from "~/components/page-header.vue";
import SuccessContent from "~/components/success-content.vue";
import CryptoJS from "crypto-js";
import { handleClick, checkString } from "@/plugins/Firebase.js";
export default {
  components: { pageHeader, SuccessContent },
  head: {
    htmlAttrs: {
      lang: "el",
    },
    bodyAttrs: {
      "data-lang": "el",
    },
    title: "Το καλύτερο δωρεάν πρόγραμμα λήψης ιστοριών Instagram",
    meta: [
      { property: "og:locale", content: "el" },
      //Page Information
      {
        name: "description",
        content:
          "Online λήψη ιστοριών Instagram χωρίς κόπο με το Savinginsta Instagram Downloader δωρεάν. Αποθηκεύστε ιστορίες Instagram υψηλής ποιότητας απευθείας στον υπολογιστή ή το τηλέφωνό σας χωρίς διαφημίσεις. Χωρίς υδατογραφήματα",
      },

      //Schema.org Microdata
      {
        itemprop: "name",
        content: "Το καλύτερο δωρεάν πρόγραμμα λήψης ιστοριών Instagram",
      },

      // Facebook / OpenGraph
      {
        property: "og:title",
        content: "Το καλύτερο δωρεάν πρόγραμμα λήψης ιστοριών Instagram",
      },
      { property: "og:type", content: "website" },
      { property: "og:url", content: "https://savinginsta.com/el/instagram-story-download" },

      {
        property: "og:description",
        content:
          "Online λήψη ιστοριών Instagram χωρίς κόπο με το Savinginsta Instagram Downloader δωρεάν. Αποθηκεύστε ιστορίες Instagram υψηλής ποιότητας απευθείας στον υπολογιστή ή το τηλέφωνό σας χωρίς διαφημίσεις. Χωρίς υδατογραφήματα",
      },
      //Twitter
      { name: "twitter:card", content: "summary" },
      { name: "twitter:url", content: "https://savinginsta.com/el/instagram-story-download" },
      {
        name: "twitter:title",
        content: "Το καλύτερο δωρεάν πρόγραμμα λήψης ιστοριών Instagram",
      },
      {
        name: "twitter:description",
        content:
          "Online λήψη ιστοριών Instagram χωρίς κόπο με το Savinginsta Instagram Downloader δωρεάν. Αποθηκεύστε ιστορίες Instagram υψηλής ποιότητας απευθείας στον υπολογιστή ή το τηλέφωνό σας χωρίς διαφημίσεις. Χωρίς υδατογραφήματα",
      },
      //multilingual
      {
        name: "google",
        content: "notranslate",
      },
    ],
    link: [
      //multilingual
      {
        rel: "alternate",
        hreflang: "x-default",
        href: "https://savinginsta.com/el/instagram-story-download",
      },
      {
        rel: "alternate",
        hreflang: "en",
        href: "https://savinginsta.com/instagram-story-download",
      },
      {
        rel: "alternate",
        hreflang: "en-in",
        href: "https://savinginsta.com/in/instagram-story-download",
      },
      {
        rel: "alternate",
        hreflang: "vi",
        href: "https://savinginsta.com/vn/instagram-story-download",
      },
      {
        rel: "alternate",
        hreflang: "tr",
        href: "https://savinginsta.com/tr/instagram-story-download",
      },
      {
        rel: "alternate",
        hreflang: "id",
        href: "https://savinginsta.com/id/instagram-story-download",
      },
      {
        rel: "alternate",
        hreflang: "fr",
        href: "https://savinginsta.com/fr/instagram-story-download",
      },
      {
        rel: "alternate",
        hreflang: "pt",
        href: "https://savinginsta.com/pt/instagram-story-download",
      },
      {
        rel: "alternate",
        hreflang: "ru",
        href: "https://savinginsta.com/ru/instagram-story-download",
      },
      {
        rel: "alternate",
        hreflang: "es",
        href: "https://savinginsta.com/es/instagram-story-download",
      },
      {
        rel: "alternate",
        hreflang: "ms",
        href: "https://savinginsta.com/ms/instagram-story-download",
      },
      {
        rel: "alternate",
        hreflang: "ko",
        href: "https://savinginsta.com/ko/instagram-story-download",
      },
      {
        rel: "alternate",
        hreflang: "ja",
        href: "https://savinginsta.com/ja/instagram-story-download",
      },
      {
        rel: "alternate",
        hreflang: "jv",
        href: "https://savinginsta.com/jv/instagram-story-download",
      },
      {
        rel: "alternate",
        hreflang: "cs",
        href: "https://savinginsta.com/cs/instagram-story-download",
      },
      {
        rel: "alternate",
        hreflang: "de",
        href: "https://savinginsta.com/de/instagram-story-download",
      },
      {
        rel: "alternate",
        hreflang: "it",
        href: "https://savinginsta.com/it/instagram-story-download",
      },
      {
        rel: "alternate",
        hreflang: "pl",
        href: "https://savinginsta.com/pl/instagram-story-download",
      },
      {
        rel: "alternate",
        hreflang: "hu",
        href: "https://savinginsta.com/hu/instagram-story-download",
      },
      {
        rel: "alternate",
        hreflang: "nl",
        href: "https://savinginsta.com/nl/instagram-story-download",
      },
      {
        rel: "alternate",
        hreflang: "ro",
        href: "https://savinginsta.com/ro/instagram-story-download",
      },
      {
        rel: "alternate",
        hreflang: "el",
        href: "https://savinginsta.com/el/instagram-story-download",
      },
      {
        rel: "canonical",
        href: "https://savinginsta.com/el/instagram-story-download",
      },
    ],
    script: [
      {
        json: {
          "@context": "http://schema.org",
          "@graph": [
            {
              "@type": "WebSite",
              name: "Savinginsta",
              alternateName: "Instagram downloader",
              url: "https://savinginsta.com",
            },
            {
              "@type": "WebPage",
              name: "Το καλύτερο δωρεάν πρόγραμμα λήψης ιστοριών Instagram - Savinginsta", //title
              inLanguage: "el", //语种
              description:
                "Online λήψη ιστοριών Instagram χωρίς κόπο με το Savinginsta Instagram Downloader δωρεάν. Αποθηκεύστε ιστορίες Instagram υψηλής ποιότητας απευθείας στον υπολογιστή ή το τηλέφωνό σας χωρίς διαφημίσεις. Χωρίς υδατογραφήματα.", //元描述
              image: "https://savinginsta.com/static/images/savinginsta_thumbnail.jpg", //绝对路径
              url: "https://savinginsta.com/el/instagram-story-download", //当前url
            },
          ],
        },
        type: "application/ld+json",
      },
    ],
  },
  data() {
    return {
      input: "",
      success: false,
      isHttpLoading: false,
      httpError1: false,
      httpError2: false,
      current: 0,
      successList: [],
      faqList: [
        {
          title: `Τι είναι το Instagram Story Downloader;`,
          content: `Είναι ένα δωρεάν εργαλείο για εύκολη λήψη των Ιστοριών Instagram χωρίς εγγραφή.`,
        },
        {
          title: `Πώς να κατεβάσετε το Video Instagram Story;`,
          content: `Ακολουθήστε τις απλές οδηγίες παραπάνω για γρήγορη λήψη ιστοριών Instagram στο Savinginsta.`,
        },
        {
          title: `Πώς μπορώ να κατεβάσω τα Highlights από το Instagram;`,
          content: `Για να κατεβάσετε τις καλύτερες στιγμές του Instagram, ο λογαριασμός πρέπει να είναι δημόσιος. Εισαγάγετε το όνομα χρήστη στο Savinginsta.app και κάντε κλικ στο «Λήψη».`,
        },
        {
          title: `Τι γίνεται αν Θέλω να Προβάλω Ανώνυμα Ιστορίες IG;`,
          content: `Έχουμε μια τέλεια λύση: τον ανώνυμο θεατή Instagram Story Viewer Instagram Story.`,
        },
        {
          title: `Χρειάζεται να συνδεθείτε με τον λογαριασμό σας στο Instagram;`,
          content: `Δεν απαιτείται σύνδεση. Το Savinginsta δεν ζητά προσωπικά στοιχεία, διασφαλίζοντας ασφαλείς και ανώνυμες λήψεις.`,
        },
        {
          title: `Μπορώ να αποθηκεύσω βίντεο απευθείας στο Instagram;`,
          content: `Ναι, αλλά πρέπει να περιμένετε μέχρι να τελειώσει το βίντεο.`,
        },
        {
          title: `Υποστηρίζει ο ιστότοπος λήψη από το Insta για υπολογιστές;`,
          content: `Οπωσδήποτε, μπορείτε να κατεβάσετε βίντεο, φωτογραφίες, ιστορίες και πολλά άλλα από έναν υπολογιστή. Δείτε επίσης: Λήψη από το Insta σε υπολογιστή.`,
        },
        {
          title: `Μπορείτε να κατεβάσετε το Instagram Story για Android;`,
          content: `Yes, copy the post link, paste it into our website's box, and save. For more info: Download from Insta on Android.`,
        },
        {
          title: `Πώς να κατεβάσω βίντεο και φωτογραφίες Story Instagram στο iPhone;`,
          content: `Είναι εξίσου εύκολο με το Android. Δείτε τον οδηγό για Λήψη ιστορίας Instagram για iOS.`,
        },
        {
          title: `Πού μπορώ να βρω αποθηκευμένα βίντεο ιστορίας σε υπολογιστή;`,
          content: `Ελέγξτε το ιστορικό λήψεων του προγράμματος περιήγησής σας χρησιμοποιώντας Ctrl+J για Windows και Shift+Command+J για Mac.`,
        },
      ],
    };
  },
  computed: {
    ...mapGetters(["language"]),
  },
  mounted() {
    this.debouncedDownInput = this.debounce(this.downInput, 1000);
  },
  methods: {
    async downloadHandel() {
      if (this.isHttpLoading || this.input === "") return;
      this.isHttpLoading = false;
      this.httpError1 = false;
      this.httpError2 = false;
      this.input = this.input.replace(/^.*\s?https:\/\//, "https://");
      const insUrlPattern = new RegExp("^http(s|)://.*instagram.com.*/.*$");
      let type = checkString(this.input);
      if (!insUrlPattern.test(this.input)) {
        //点击解析下载按钮
        handleClick("action_ins_detect_boinsom", {
          site: "other",
          noislink: this.input,
          from: "story",
          type: type,
        });
        this.httpError2 = true;
        this.isHttpLoading = false;
        return;
      }
      //点击解析下载按钮
      handleClick("action_ins_detect_boinsom", {
        site: "other",
        from: "story",
        type: type,
      });
      //开始解析  ins_start_resolve
      handleClick("ins_start_resolve", {
        islink: this.input,
        from: "story",
        type: type,
      });
      this.isHttpLoading = true;
      try {
        let result = this.uki(this.input);
        const response = await fetch(
          "https://savinginsta.com/api/downloader/analysis",
          {
            method: "POST",
            headers: { "Content-Type": "application/json" },
            body: JSON.stringify({
              path: result,
            }),
          }
        );
        let encryptedResponse = await response.text();
        let parse = JSON.parse(encryptedResponse);
        if (parse.code != 200) {
          // 解析失败  ins_resolve_fail
          handleClick("ins_resolve_fail", {
            reason: "Failed to fetch",
            islink: this.input,
            from: "story",
            type: type,
          });
          this.httpError1 = true;
          this.isHttpLoading = false;
          return;
        } else {
          //解析成功  ins_resolve_success
          handleClick("ins_resolve_success", {
            type: type,
            from: "story",
          });
          let decryptedResponse = await this.eki(parse.data); // 使用你的解密函数
          this.successList = JSON.parse(decryptedResponse);
          this.success = true;
          this.isHttpLoading = false;
        }
      } catch (error) {
        // 解析失败  ins_resolve_fail
        handleClick("ins_resolve_fail", {
          reason: "Failed to fetch",
          islink: this.input,
          from: "story",
          type: type,
        });
        console.error(error);
        this.httpError1 = true;
        this.isHttpLoading = false;
      }
    },

    uki(input) {
      let CIPHER_ALGORITHM = "DES-CBC";
      let IV_SIZE = 8;
       
      
  try {
        const complexKey = [
          process.env.part1,
          process.env.part2,
          process.env.part3,
          process.env.part4,
          process.env.part5,
          process.env.part6,
          process.env.part7,
          process.env.part8,
        ].join("");
        const keyBytes = CryptoJS.enc.Utf8.parse(complexKey);
        const inputBytes = CryptoJS.enc.Utf8.parse(input);
        const ivBytes = CryptoJS.lib.WordArray.random(IV_SIZE);
        const encrypted = CryptoJS.DES.encrypt(inputBytes, keyBytes, {
          iv: ivBytes,
          mode: CryptoJS.mode.CBC,
          padding: CryptoJS.pad.Pkcs7,
        });
        const ciphertext = ivBytes.concat(encrypted.ciphertext);
        return ciphertext.toString();
      } catch (error) {
        console.error(error);
        return null;
      }
    },
    eki(cipherText) {
      let CIPHER_ALGORITHM = "DES-CBC";
      let IV_SIZE = 8;
       
      const complexKey = [
          process.env.part1,
          process.env.part2,
          process.env.part3,
          process.env.part4,
          process.env.part5,
          process.env.part6,
          process.env.part7,
          process.env.part8,
        ].join("");
      try {
        let keyBytes = CryptoJS.enc.Utf8.parse(
          complexKey.padEnd(CIPHER_ALGORITHM === "DES-CBC" ? 8 : 16)
        );
        let ivBytes = { iv: CryptoJS.enc.Hex.parse(process.env.DES_IV) }; // 如果使用CBC模式，需要一个初始化向量iv，这里是空向量
        let decrypted = CryptoJS.DES.decrypt(
          { ciphertext: CryptoJS.enc.Hex.parse(cipherText) },
          keyBytes,
          ivBytes
        );
        return decrypted.toString(CryptoJS.enc.Utf8);
      } catch (e) {
        console.error(e);
        return null;
      }
    },
    sendDownload(event) {
      if (event.keyCode === 13 && !this.isHttpLoading) {
        this.downloadHandel();
        event.preventDefault();
        return false;
      }
    },
    changeTab(k) {
      this.current = k;
    },
    handleInput(e) {
      this.debouncedDownInput(e);
    },
    debounce(fn, delay) {
      let timer;
      return function () {
        let context = this;
        let args = arguments;
        clearTimeout(timer);
        timer = setTimeout(() => {
          fn.apply(context, args);
        }, delay);
      };
    },
    downInput(e) {
      let type = checkString(e.target.value);
      // 粘贴链接到输入框 action_ins_paste
      handleClick("action_ins_paste", {
        islink: e.target.value,
        from: "story",
        type: type,
      });
    },
    handleClickPasted() {
      if (!navigator.clipboard) {
        console.log("Clipboard API not available");
        return;
      }
      navigator.clipboard
        .readText()
        .then((text) => {
          this.input = text;
          let type = checkString(text);
          // 粘贴链接到输入框 action_ins_paste
          handleClick("action_ins_paste", {
            islink: text,
            from: "story",
            type: type,
          });
        })
        .catch((err) => {
          console.error("Failed to read clipboard contents: ", err);
        });
    },
    showLanguageHandel() {
      this.$refs.languageRef.close();
    },
    refresh() {
      this.success = false;
      this.input = "";
      this.successList = [];
    },
  },
};
</script>
    <style lang="scss" scoped>
 @import "@/static/style/story.css";
.loading {
  .loading-dots {
    position: relative;
    z-index: 999;
    margin-top: 70px;
  }

  .dot {
    background-color: #ffffff;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    margin: 0 10px;
    animation: loading-animation 1.5s infinite;
  }

  .dot:nth-child(2) {
    animation-delay: 0.5s;
  }

  .dot:nth-child(3) {
    animation-delay: 0.8s;
  }
  .dot:nth-child(4) {
    animation-delay: 1s;
  }
}
@keyframes loading-animation {
  0%,
  50%,
  80%,
  100% {
    transform: scale(1);
  }
  40% {
    transform: scale(1.5);
  }
}
@media (max-width: 768px) {
  .loading {
    .loading-dots {
      margin-top: 26px !important;
    }
    .dot {
      width: 8px !important;
      height: 8px !important;
    }
  }
}
</style>
    